package torres.item.effect;

import torres.entity.Entity;
import torres.item.interactive.Interaction;

/**
 * @author Torres
 * Represents the effects that occur when an item is used.
 * Affects an Entity.
 */
public interface Effect extends Interaction {
	/**
	 * Use this effect on the specified entity.
	 * @param The Entity that is using this effect. 
	 */
	public void use(Entity e);
	
	/**
	 * Tests to see if this effect can successfully be applied to the specified Entity. 
	 * @param e The Entity on which to test if this affect can be applied.
	 * @return True if this effect can be applied to the Entity, false otherwise.
	 */
	public boolean canUse(Entity e);
}
